const query = require('../../db/index');

// 获取标签
exports.getTags = async (req, res) => {
    try {
        // 从数据库中获取标签信息
        const sql = "SELECT * FROM tags";
        const tags = await query(sql);

        // 返回成功的响应
        return res.dispatch(200, 'ok', tags);
    } catch (error) {
        // 如果获取标签出错，返回 500 错误
        return res.dispatch(500, "Internal Server Error: Failed to get tags");
    }
};

// 添加标签
exports.addTag = async (req, res) => {
    try {
        const { name } = req.body;

        // 使用 query 执行 SQL 插入语句
        const sql = "INSERT INTO tags (name) VALUES (?)";
        const values = [name];

        try {
            await query(sql, values);
            // 返回成功的响应
            return res.dispatch(201, "Tag added successfully");
        } catch (error) {
            // 如果插入标签出错，返回 500 错误
            return res.dispatch(500, "Internal Server Error: Failed to add tag");
        }
    } catch (error) {
        // 如果出现其他错误，返回 500 错误
        return res.dispatch(500, "Internal Server Error");
    }
};

// 删除标签
exports.deleteTag = async (req, res) => {
    try {
        // 从请求参数中获取标签ID
        const tagId = req.query.tagId;
        console.log("tagId", tagId);
        // 如果标签ID不存在，返回 400 错误
        if (!tagId) {
            return res.dispatch(400, "Bad Request: Tag ID is required");
        }

        // 使用标签ID执行数据库删除操作
        const sql = "DELETE FROM tags WHERE tagsId = ?";
        const values = [tagId];

        await query(sql, values);

        // 返回成功的响应
        return res.dispatch(200, "Tag deleted successfully");
    } catch (error) {
        // 如果删除标签出错，返回 500 错误
        return res.dispatch(500, "Internal Server Error: Failed to delete tag");
    }
};
